<?xml version="1.0" encoding="UTF-8"?>
<html filename="docs/BSAX/IBufferedAttributes.html">
<body>
<a id="#top"/>
<h1>
	                Interface Summary : IBufferedAttributes </h1> Interface for a list of XML attributes.

 <blockquote>
 <em>This module, both source code and documentation, is in the
 Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
 </blockquote>

 <p>This interface allows access to a list of attributes in
 three different ways:</p>

 <ol>
 <li>by attribute index;</li>
 <li>by Namespace-qualified name; or</li>
 <li>by qualified (prefixed) name.</li>
 </ol>

 <p>The list will not contain attributes that were declared
 #IMPLIED but not specified in the start tag.  It will also not
 contain attributes used as Namespace declarations (xmlns*) unless
 the <code>http://xml.org/sax/features/namespace-prefixes</code>
 feature is set to <var>true</var> (it is <var>false</var> by
 default).
 Because SAX2 conforms to the original &quot;Namespaces in XML&quot;
 recommendation, it normally does not
 give namespace declaration attributes a namespace URI.</p>

 <p>Some SAX2 parsers may support using an optional feature flag
 (<code>http://xml.org/sax/features/xmlns-uris</code>) to request that
 those attributes be given URIs, conforming to a later
 backwards-incompatible revision of that recommendation.
 (The attribute's &quot;local name&quot; will be the prefix, or the empty
 string when defining a default element namespace.)
 For portability, handler code should always resolve that conflict,
 rather than requiring parsers that can change the setting of that
 feature flag.</p>

 <p>If the namespace-prefixes feature (see above) is <var>false</var>,
 access by qualified name may not be available; if the
 <code>http://xml.org/sax/features/namespaces</code>
 feature is <var>false</var>, access by Namespace-qualified names
 may not be available.</p>

 <p>This interface replaces the now-deprecated SAX1 AttributeList
 interface, which does not contain Namespace support.
 In addition to Namespace support, it adds the <var>getIndex</var>
 methods (below).</p>

 <p>The order of attributes in the list is unspecified, and will
 vary from implementation to implementation.</p>

 <p>For reasons of generality and efficiency, strings that are returned
 from the interface are declared as pointers (PSAXChar) and lengths.
 This requires that the model use procedural out parameters rather
 than functions as in the original interfaces.</p>

<br/><b>Since : </b> SAX 2.0
<br/><b>See : </b> <a href="../BSAXExt/IBufferedDeclHandler.html#attributeDecl">IBufferedDeclHandler.attributeDecl</a>
<h2>
	              Methods
	            </h2>
<div style="padding-left:10px">
<a href="#getLength">
	                  function
	                 getLength() : Integer</a>
<br/>
<a href="#getURI">
	                  procedure
	                 getURI(Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getLocalName">
	                  procedure
	                 getLocalName(Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getQName">
	                  procedure
	                 getQName(Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getType">
	                  procedure
	                 getType(Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getType">
	                  procedure
	                 getType(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getType">
	                  procedure
	                 getType(PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getValue">
	                  procedure
	                 getValue(Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getValue">
	                  procedure
	                 getValue(PSAXChar, Integer, PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getValue">
	                  procedure
	                 getValue(PSAXChar, Integer, PSAXChar, Integer)</a>
<br/>
<a href="#getIndex">
	                  function
	                 getIndex(PSAXChar, Integer, PSAXChar, Integer) : Integer</a>
<br/>
<a href="#getIndex">
	                  function
	                 getIndex(PSAXChar, Integer) : Integer</a>
<br/>
</div>
<br/>
<h2>
	                Properties
	              </h2>
<div style="padding-left:10px"/>
<br/>
<hr width="100%"/>
<a name="#getLength">
<p>
<b>function</b> getLength() : Integer; </p>
</a> Return the number of attributes in the list.

 <p>Once you know the number of attributes, you can iterate
 through the list.</p>

<br/><b>Result : </b> The number of attributes in the list.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getURI.Integer.PSAXChar.Integer">IBufferedAttributes.getURI(Integer,PSAXChar,Integer)</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLocalName.Integer.PSAXChar.Integer">IBufferedAttributes.getLocalName(Integer,PSAXChar,Integer)</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getQName.Integer.PSAXChar.Integer">IBufferedAttributes.getQName(Integer,PSAXChar,Integer)</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getType.Integer.PSAXChar.Integer">IBufferedAttributes.getType(Integer,PSAXChar,Integer)</a>
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getValue.Integer.PSAXChar.Integer">IBufferedAttributes.getValue(Integer,PSAXChar,Integer)</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getURI">
<p>
<b>procedure</b> getURI( index : Integer;  uri : PSAXChar;  uriLength : Integer); </p>
</a> Look up an attribute's Namespace URI by index.

<br/><b>Parameter : </b> index The attribute index (zero-based).
<br/><b>Parameter : </b> uri The Namespace URI, or the empty string if none
         is available or if the index is out of range.
<br/><b>Parameter : </b> uriLength The length of the Namespace URI buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getLocalName">
<p>
<b>procedure</b> getLocalName( index : Integer;  localName : PSAXChar;  localNameLength : Integer); </p>
</a> Look up an attribute's local name by index.

<br/><b>Parameter : </b> index The attribute index (zero-based).
<br/><b>Parameter : </b> localName The local name, or the empty string if Namespace
         processing is not being performed or if the
         index is out of range.
<br/><b>Parameter : </b> localNameLength The length of the localName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getQName">
<p>
<b>procedure</b> getQName( index : Integer;  qName : PSAXChar;  qNameLength : Integer); </p>
</a> Look up an attribute's XML 1.0 qualified name by index.

<br/><b>Parameter : </b> index The attribute index (zero-based).
<br/><b>Parameter : </b> qName The XML 1.0 qualified name, or the empty string
         if none is available or if the index is out of
         range.
<br/><b>Parameter : </b> qNameLength The length of the qName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getType">
<p>
<b>procedure</b> getType( index : Integer;  attType : PSAXChar;  attTypeLength : Integer); </p>
</a> Look up an attribute's type by index.

 <p>The attribute type is one of the strings &quot;CDATA&quot;, &quot;ID&quot;,
 &quot;IDREF&quot;, &quot;IDREFS&quot;, &quot;NMTOKEN&quot;, &quot;NMTOKENS&quot;, &quot;ENTITY&quot;, &quot;ENTITIES&quot;,
 or &quot;NOTATION&quot; (always in upper case).</p>

 <p>If the parser has not read a declaration for the attribute,
 or if the parser does not report attribute types, then it must
 return the value &quot;CDATA&quot; as stated in the XML 1.0 Recommendation
 (clause 3.3.3, &quot;Attribute-Value Normalization&quot;).</p>

 <p>For an enumerated attribute that is not a notation, the
 parser will report the type as &quot;NMTOKEN&quot;.</p>

<br/><b>Parameter : </b> index The attribute index (zero-based).
<br/><b>Parameter : </b> attType The attribute's type as a string or an empty string if the
         index is out of range.
<br/><b>Parameter : </b> attTypeLength The length of the attType buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getType">
<p>
<b>procedure</b> getType( uri : PSAXChar;  uriLength : Integer;  localName : PSAXChar;  localNameLength : Integer;  attType : PSAXChar;  attTypeLength : Integer); </p>
</a> Look up an attribute's type by XML 1.0 local name and Namespace URI.

 <p>See <a href="../BSAX/IBufferedAttributes.html#getType.Integer.PSAXChar.Integer">getType(Integer, PSAXChar, Integer)</a> for a description
 of the possible types.</p>

<br/><b>Parameter : </b> uri The Namespace uri
<br/><b>Parameter : </b> uriLength The length of the uri Buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> localName The XML 1.0 local name
<br/><b>Parameter : </b> localNameLength The length of the localName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> uri The Namespace uri
<br/><b>Parameter : </b> uriLength The length of the uri buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>Parameter : </b> attType The attribute's type as a string or an empty string if the
         attribute is not in the list
<br/><b>Parameter : </b> attTypeLength The length of the attType buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getType">
<p>
<b>procedure</b> getType( qName : PSAXChar;  qNameLength : Integer;  attType : PSAXChar;  attTypeLength : Integer); </p>
</a>  Look up an attribute's type by XML 1.0 qualified name.

  <p>See <a href="../BSAX/IBufferedAttributes.html#getType.Integer.PSAXChar.Integer">getType(Integer, PSAXChar, Integer)</a>
 for a description of the possible types.</p>

 <br/><b>Parameter : </b> qName The XML 1.0 qualified name.
 <br/><b>Parameter : </b> qNameLength The length of the qName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Parameter : </b> attType The attribute type as a string, or an empty string if the
          attribute is not in the list or if qualified names
          are not available.
 <br/><b>Parameter : </b> attTypeLength The length of the attType buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getValue">
<p>
<b>procedure</b> getValue( index : Integer;  value : PSAXChar;  valueLength : Integer); </p>
</a>  Look up an attribute's value by index.

  <p>If the attribute value is a list of tokens (IDREFS,
  ENTITIES, or NMTOKENS), the tokens will be concatenated
  into a single string with each token separated by a
  single space.</p>

 <br/><b>Parameter : </b> index The attribute index (zero-based).
 <br/><b>Parameter : </b> value The attribute's value as a string, or an empty string if the
          index is out of range.
 <br/><b>Parameter : </b> valueLength The length of the value buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getValue">
<p>
<b>procedure</b> getValue( uri : PSAXChar;  uriLength : Integer;  localName : PSAXChar;  localNameLength : Integer;  value : PSAXChar;  valueLength : Integer); </p>
</a>  Look up an attribute's value by Namespace name.

  <p>See <a href="../BSAX/IBufferedAttributes.html#getValue.Integer.PSAXChar.Integer)">getValue(Integer, PSAXChar, Integer)</a>
 for a description of the possible values.</p>

 <br/><b>Parameter : </b> uri The Namespace URI, or the empty String if the
         name has no Namespace URI.
 <br/><b>Parameter : </b> uriLength The length of the uri buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Parameter : </b> localName The local name of the attribute.
 <br/><b>Parameter : </b> localNameLength The length of the localName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Parameter : </b> value The attribute value as a string, or an empty string if the
          attribute is not in the list.
 <br/><b>Parameter : </b> valueLength The length of the value buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getValue">
<p>
<b>procedure</b> getValue( qName : PSAXChar;  qNameLength : Integer;  value : PSAXChar;  valueLength : Integer); </p>
</a>  Look up an attribute's value by XML 1.0 QName

  <p>See <a href="../BSAX/IBufferedAttributes.html#getValue.Integer.PSAXChar.Integer">getValue(Integer, PSAXChar, Integer)</a>
 for a description of the possible values.</p>

 <br/><b>Parameter : </b> qName The qualified (prefixed) name.
 <br/><b>Parameter : </b> qNameLength The length of the qName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Parameter : </b> value The attribute value as a string, or an empty string if the
          attribute is not in the list.
 <br/><b>Parameter : </b> valueLength The length of the value buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getIndex">
<p>
<b>function</b> getIndex( uri : PSAXChar;  uriLength : Integer;  localName : PSAXChar;  localNameLength : Integer) : Integer; </p>
</a>  Look up the index of an attribute by Namespace name.

 <br/><b>Parameter : </b> uri The Namespace URI, or the empty string if
         the name has no Namespace URI.
 <br/><b>Parameter : </b> uriLength The length of the uri buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Parameter : </b> localName The attribute's local name.
 <br/><b>Parameter : </b> loclaNameLength The length of the localName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Result : </b> The index of the attribute, or -1 if it does not
          appear in the list.
<br/>
<p>
<a href="#top">Top</a>
</p>
<hr width="100%"/>
<a name="#getIndex">
<p>
<b>function</b> getIndex( qName : PSAXChar;  qNameLength : Integer) : Integer; </p>
</a>  Look up the index of an attribute by XML 1.0 qualified name.

 <br/><b>Parameter : </b> qName The qualified (prefixed) name.
 <br/><b>Parameter : </b> qNameLength The length of the qName buffer
   The value may be -1 which indicates that the buffer is
   null-terminated. If the value is 0 then the buffer may be nil.
 <br/><b>Result : </b> The index of the attribute, or -1 if it does not
          appear in the list.
<br/>
<p>
<a href="#top">Top</a>
</p>
<div style="padding-left:10px">
<hr width="100%"/>
<a name="#Length">
<p> <b>Length</b>
</p>
</a> Extension property to get the number of Attributes

<br/><b>Result : </b> The number of attributes in the list.
<br/><b>See : </b> <a href="../BSAX/IBufferedAttributes.html#getLength">IBufferedAttributes.getLength</a>
<br/>
<p style="margin-left:30px">
<code>property Length : Integer
      read getLength</code>
</p>
<p>
<a href="#top">Top</a>
</p>
</div>
<br/>
</body>
</html>